List<String> get path { final path = <String>[]; Context? context = this; while (context != null) { final key = context.key; if (key != null) { path.add(key); } context = context.parent; } return path.reversed.toList(); }