1: <?php
2:
3: namespace LaravelUi5\Core\Ui5\Contracts;
4:
5: /**
6: * Interface LaravelUi5ManifestInterface
7: *
8: * Defines the Laravel-specific data structure injected into
9: * the `laravel.ui5` section of a UI5 application's manifest.json.
10: *
11: * This section is used to expose backend-side metadata to the
12: * frontend runtime, such as role-based UI abilities, dynamic
13: * action endpoints, report definitions, app-level settings,
14: * and Laravel routes.
15: *
16: * Every UI5 App that wants to provide this section must implement
17: * the Ui5AppInterface and return a valid LaravelUi5ManifestInterface.
18: *
19: * @see Ui5AppInterface::getLaravelUiManifest()
20: */
21: interface LaravelUi5ManifestInterface
22: {
23: /**
24: * Converts the full manifest fragment into an array structure
25: * suitable for injection under the `laravel.ui5` root node.
26: *
27: * This is the single method consumed by the ManifestController.
28: *
29: * @return array<string, mixed>
30: */
31: public function getFragment(string $module): array;
32: }
33: