Expand description
DescriptorPool -> Vec<ServiceModel> extraction.
The descriptor pool is built in main.rs via decode_file_descriptor_set
so that temporal.v1.* extensions on MethodOptions / ServiceOptions
survive — prost-types would otherwise drop them silently.
Parsing strategy: re-encode each extension Value back to bytes through
prost-reflect’s DynamicMessage and decode into the strongly-typed
prost message via prost::Message::decode. This avoids hand-walking
Value trees.