--- a/net/minecraft/server/level/Ticket.java
+++ b/net/minecraft/server/level/Ticket.java
@@ -2,13 +_,25 @@
 
 import java.util.Objects;
 
-public final class Ticket<T> implements Comparable<Ticket<?>> {
+public final class Ticket<T> implements Comparable<Ticket<?>>, ca.spottedleaf.moonrise.patches.chunk_system.ticket.ChunkSystemTicket<T> { // Paper - rewrite chunk system
     private final TicketType<T> type;
     private final int ticketLevel;
-    private final T key;
-    private long createdTick;
-
-    protected Ticket(TicketType<T> type, int ticketLevel, T key) {
+    public final T key;
+    // Paper start - rewrite chunk system
+    private long removeDelay;
+
+    @Override
+    public final long moonrise$getRemoveDelay() {
+        return this.removeDelay;
+    }
+
+    @Override
+    public final void moonrise$setRemoveDelay(final long removeDelay) {
+        this.removeDelay = removeDelay;
+    }
+    // Paper end - rewrite chunk system
+
+    public Ticket(TicketType<T> type, int ticketLevel, T key) { // Paper - public
         this.type = type;
         this.ticketLevel = ticketLevel;
         this.key = key;
@@ -41,7 +_,7 @@
 
     @Override
     public String toString() {
-        return "Ticket[" + this.type + " " + this.ticketLevel + " (" + this.key + ")] at " + this.createdTick;
+        return "Ticket[" + this.type + " " + this.ticketLevel + " (" + this.key + ")] to die in " + this.removeDelay; // Paper - rewrite chunk system
     }
 
     public TicketType<T> getType() {
@@ -53,11 +_,10 @@
     }
 
     protected void setCreatedTick(long timestamp) {
-        this.createdTick = timestamp;
+        throw new UnsupportedOperationException(); // Paper - rewrite chunk system
     }
 
     protected boolean timedOut(long currentTime) {
-        long timeout = this.type.timeout();
-        return timeout != 0L && currentTime - this.createdTick > timeout;
+        throw new UnsupportedOperationException(); // Paper - rewrite chunk system
     }
 }
