HttpApi object with all supporting HttpApiGroup objects and other schema types used to compose the entire API could live in their own shared API contract package and the actual backend just needs to provide all required implementations using HttpApiBuilder. That way my frontend could reference the API contract package and use HttpApiClient for the generated client. Does that sound correct or is there some more nuanced details I need to keep in mind?