1: <?php
2:
3: declare(strict_types=1);
4:
5: namespace LaravelUi5\OData\Service\Contracts;
6:
7: /**
8: * Marker interface for all query plans.
9: *
10: * Concrete plan classes live in Protocol\Planning\ (an outer ring that
11: * Service\ must not import). This marker exists solely so that the resolver
12: * interfaces in Service\Contracts\ can carry a type-checked parameter without
13: * creating an inward dependency.
14: *
15: * Callers in Protocol\ receive the resolver from RuntimeSchemaInterface and
16: * safely pass the concrete plan — the runtime type is always correct because
17: * SchemaBuilder only pairs entity-set resolvers with entity-set plans.
18: *
19: * @see EntitySetResolverInterface
20: * @see FunctionResolverInterface
21: */
22: interface QueryPlanInterface
23: {
24: }
25: