self::VERSION, 'status' => $status, 'capabilities' => array( $capability => array( self::capability_declaration( $capability ) ), ), ); } /** * Spec and schema references for every capability these routes serve, keyed by capability name. * * @return array */ public static function capability_declarations(): array { return array( self::CAPABILITY_CATALOG_SEARCH => array( 'version' => self::VERSION, 'spec' => 'https://ucp.dev/' . self::VERSION . '/specification/catalog/search', 'schema' => 'https://ucp.dev/' . self::VERSION . '/schemas/shopping/catalog_search.json', ), self::CAPABILITY_CATALOG_LOOKUP => array( 'version' => self::VERSION, 'spec' => 'https://ucp.dev/' . self::VERSION . '/specification/catalog/lookup', 'schema' => 'https://ucp.dev/' . self::VERSION . '/schemas/shopping/catalog_lookup.json', ), ); } /** * Spec and schema references for a capability. * * @param string $capability One of the CAPABILITY_* constants. * @return array */ private static function capability_declaration( string $capability ): array { return self::capability_declarations()[ $capability ] ?? array( 'version' => self::VERSION ); } }