public GRNDescriptor getDescriptor(GRN grn) {
        final GRNDescriptorProvider provider = descriptorProviders.get(grn.grnType());
        if (provider == null) {
            throw new IllegalStateException("Missing GRN descriptor provider for GRN type: " + grn.type());
        }
        return provider.get(grn);
    }
@Test
    void getDescriptor() {
        final ImmutableMap<GRNType, GRNDescriptorProvider> providers =  ImmutableMap.of(
                user.grnType(), grn -> GRNDescriptor.create(grn, "Jane Doe")
        );
        final GRNDescriptorService service = new GRNDescriptorService(providers);

        assertThat(service.getDescriptor(user)).satisfies(descriptor -> {
            assertThat(descriptor.grn()).isEqualTo(user);
            assertThat(descriptor.title()).isEqualTo("Jane Doe");
        });
    }