@Override
  public final void fromAttributes(AttributeMap attributes) {
    super.fromAttributes(attributes);

    DynArray<IntTimelineData> timelineData = attributes.getValue(TIMELINE);
    if (timelineData != null) {
      timeline = timelineData.toArray(IntTimelineData.class);
    }
  }
  @Override
  public final void toAttributes(AttributeMap attributes) {
    super.toAttributes(attributes);

    if (timeline != null) {
      DynArray<IntTimelineData> result = new DynArray<IntTimelineData>();
      for (int i = 0; i < timeline.length; i++) {
        result.set(i, timeline[i]);
      }
      attributes.put(TIMELINE, result);
    }
  }