anchor.diff:  }
   ----
   
  -<1> the `PTransform` generics define it is an input (`PBegin` marker)
  -<2> the `expand` method chains the native IO with a custom mapper (`RecordToJson`)
  -<3> the mapper uses the JSON-P coder automatically created from the contextual component
  +<1> The `PTransform` generics define that the component is an input (`PBegin` marker).
  +<2> The `expand` method chains the native I/O with a custom mapper (`RecordToJson`).
  +<3> The mapper uses the JSON-P coder automatically created from the contextual component.
   
  -Since the Beam wrapper doesn't respect the standard Kit programming Model (no `@Emitter` for instance)
  -you need to set `<talend.validation.component>false</talend.validation.component>` property in your `pom.xml`
  -(or equivalent for Gradle) to skip the Kit component programming model validations.
  +Because the Beam wrapper does not respect the standard Talend Component Kit programming model ( for example, there is no `@Emitter`), you need to set the `<talend.validation.component>false</talend.validation.component>` property in your `pom.xml` file (or equivalent for Gradle) to skip the component programming model validations of the framework.
  
positive.code: 
  == Advanced
  
  In terms of classloading, when you write an IO all the Beam SDK Java core stack is assumed in Talend Component Kit runtime
  as provided so never include it in compile scope - it would be ignored anyway.
  
  === Coder
  
  If you need a JSonCoder you can use `org.talend.sdk.component.runtime.beam.factory.service.PluginCoderFactory` service
  which gives you access the JSON-P and JSON-B coders.
  
  There is also an Avro coder using the `FileContainer` format to ensure it
  is self-contained for `IndexedRecord` and doesn't need - as default Apache Beam `AvroCoder` - to set the
  schema when creating a pipeline. It takes a bit more space and therefore is a bit slower
  but for `DoFn` it is fine since they shouldn't rely on serialization in a lot of cases.
  See `org.talend.sdk.component.runtime.beam.transform.avro.IndexedRecordCoder`.
  
  === JsonObject to IndexedRecord
  
  The mainstream model is `JsonObject` but it is common to have a legacy system using
  `IndexedRecord`. To mitigate the transition you can use the following `PTransforms`:
  
  - `IndexedRecordToJson`: to convert from an `IndexedRecord` to a `JsonObject`
  - `JsonToIndexedRecord`: to convert from an `JsonObject` to a `IndexedRecord`
  
  
  === Sample
  
  Here is a sample input based on beam Kafka:
  
  [source,java]
  ----
  
negative.code: }
  ----
  
  == Wrapping an output
  
  To illustrate the output wrapping, this procedure uses the following output as a starting point (based on existing Beam outputs):
  
  [source,java]
  ----
  