import javax.annotation.Generated;
import javax.annotation.Nonnull;
import org.realityforge.arez.ArezContext;
import org.realityforge.arez.Observable;

@Generated( "org.realityforge.arez.processor.ArezProcessor" )
public final class Arez_BasicObservableModel
  extends BasicObservableModel
{
  @Nonnull
  private final ArezContext $$arez$$_context;

  @Nonnull
  private final Observable $$arez$$_time;

  public Arez_BasicObservableModel( @Nonnull final ArezContext $$arez$$_context )
  {
    super();
    this.$$arez$$_context = $$arez$$_context;
    this.$$arez$$_time =
      $$arez$$_context.createObservable( this.$$arez$$_context.areNamesEnabled() ? "BasicObservableModel.time" : null );
  }

  @Override
  public long getTime()
  {
    this.$$arez$$_time.reportObserved();
    return super.getTime();
  }

  @Override
  public void setTime( final long time )
  {
    if ( time != super.getTime() )
    {
      super.setTime( time );
      this.$$arez$$_time.reportObserved();
    }
  }
}

@@ -285,16 +285,100 @@
 Model%0A%7B%0A
+  private static volatile long $$arez$$_nextId;%0A%0A  private final long $$arez$$_id;%0A%0A
   @Nonnu
@@ -372,32 +372,32 @@
 id;%0A%0A  @Nonnull%0A
-
   private final 
@@ -576,24 +576,66 @@
    super();%0A
+    this.$$arez$$_id = $$arez$$_nextId++;%0A
     this.$$a
@@ -775,16 +775,100 @@
 bled() ?
+ $$arez$$_id() + %22time%22 : null );%0A  %7D%0A%0A  private String $$arez$$_id()%0A  %7B%0A    return
  %22BasicO
@@ -882,30 +882,37 @@
 leModel.
-time%22 : null )
+%22 + $$arez$$_id + %22.%22
 ;%0A  %7D%0A%0A 

Update code to match current generation format