message: doc: add v3 package structure
diff: @@ -85,7 +85,7 @@ In addition, the following conventions should be followed:
  ## Package organization
  -API definitions are layered hierarchically in packages from top-to-bottom:
  +API definitions are layered hierarchically in packages from top-to-bottom in v2 as following:
  - `envoy.service` contains gRPC definitions of supporting services;
  - `envoy.config` contains definitions for service configuration, filter
  @@ -97,6 +97,14 @@ resources such as `Cluster`;
  - `envoy.api.v2.core` and `envoy.api.v2.auth` hold core definitions consumed
  throughout the API.
  +In Envoy API v3, API definitions are layered hierarchically in packages from top-to-bottom as following:
  +- `envoy.extensions` contains all definitions for the extensions, the package should match the structure of the `source` directory.
  +- `envoy.service` contains gRPC definitions of supporting services and top-level messages for the services.
  +e.g. `envoy.service.route.v3` contains RDS, `envoy.service.listener.v3` contains LDS.
  +- `envoy.config` contains other definitions for service configuration, bootstrap and some legacy core types.
  +- `envoy.data` contains data format declaration for data types that Envoy produces.
  +- `envoy.type` contains common protobuf types such as percent, range and matchers.
  +
  Dependencies are enforced from top-to-bottom using visibility constraints in
  the build system to prevent circular dependency formation. Package group
  `//envoy/api/v2:friends` selects consumers of the core API package (services and configs)
  