Я прочитал пример, приведенный в документации Circe, с использованием Circe Optics. Пример в документации довольно прост, потому что путь к узлу довольно легко найти.
В моем случае json выглядит как
import io.circe._, io.circe.parser._
val json = """[["a",{"entity":["foo"]}],["b",{"entity":["bar"]}]]"""
Это действительный json, и я могу разобрать, используя parse(json)
Но как мне написать линзу, чтобы я извлекал все "foo", "bar".