anchor.diff:  /obj/effect/statclick/ticket_list/proc/Action()
   	Click()
   
  -//
  -//TICKET DATUM
  -//
  -
  +/**
  + * # Adminhelp Ticket
  + */
   /datum/admin_help
  +	/// Unique ID of the ticket
   	var/id
  +	/// The current name of the ticket
   	var/name
  +	/// The current state of the ticket
   	var/state = AHELP_ACTIVE
  -
  +	/// The time at which the ticket was opened
   	var/opened_at
  +	/// The time at which the ticket was closed
   	var/closed_at
  -
  -	var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked
  +	/// Semi-misnomer, it's the person who ahelped/was bwoinked
  +	var/client/initiator
  +	/// The ckey of the initiator
   	var/initiator_ckey
  +	/// The key name of the initiator
   	var/initiator_key_name
  +	/// If any admins were online when the ticket was initialized
   	var/heard_by_no_admins = FALSE
  -
  -	var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log()
  -
  +	/// The collection of interactions with this ticket. Use AddInteraction() or, preferably, admin_ticket_log()
  +	var/list/_interactions
  +	/// Statclick holder for the ticket
   	var/obj/effect/statclick/ahelp/statclick
  -
  +	/// Static counter used for generating each ticket ID
   	var/static/ticket_counter = 0
   
  -//call this on its own to create a ticket, don't manually assign current_ticket
  -//msg is the title of the ticket: usually the ahelp text
  -//is_bwoink is TRUE if this ticket was started by an admin PM
  +/**
  + * Call this on its own to create a ticket, don't manually assign current_ticket
  + *
  + * Arguments:
  + * * msg - The title of the ticket: usually the ahelp text
  + * * is_bwoink - Boolean operator, TRUE if this ticket was started by an admin PM
  + */
   /datum/admin_help/New(msg, client/C, is_bwoink)
   	//clean the input msg
   	msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN))
  
positive.code: /client/var/adminhelptimerid = 0 //a timer id for returning the ahelp verb
  /client/var/datum/admin_help/current_ticket //the current ticket the (usually) not-admin client is dealing with
  
  //
  //TICKET MANAGER
  //
  
  GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
  
  /datum/admin_help_tickets
  	var/list/active_tickets = list()
  	var/list/closed_tickets = list()
  	var/list/resolved_tickets = list()
  
  	var/obj/effect/statclick/ticket_list/astatclick = new(null, null, AHELP_ACTIVE)
  
negative.code: 	var/list/dat = list("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Ticket #[id]</title></head>")
  	var/ref_src = "[REF(src)]"
  	dat += "<h4>Admin Help Ticket #[id]: [LinkedReplyName(ref_src)]</h4>"
  	dat += "<b>State: [ticket_status()]</b>"
  	dat += "[FOURSPACES][TicketHref("Refresh", ref_src)][FOURSPACES][TicketHref("Re-Title", ref_src, "retitle")]"
  	if(state != AHELP_ACTIVE)
  		dat += "[FOURSPACES][TicketHref("Reopen", ref_src, "reopen")]"
  	dat += "<br><br>Opened at: [gameTimestamp(wtime = opened_at)] (Approx [DisplayTimeText(world.time - opened_at)] ago)"
  